#ifndef NETWORK_H
#define NETWORK_H

#include "hashtbl.h"
#include "node.h"
#include "tuple.h"
#include "list.h"

/* Definición del Source */
#define network_source_node(n) 0

/* Definición del Target */
#define network_trash_node(n) 1

/** Puntero a sNetwork */
typedef struct sNetwork * Network;

/** Crea la network */
Network network_create (void);

/** Agrega los vecinos de la network */
void network_add_node (Network net, Node NodeSource, Node_tuple NodeTup);

/** Devuelve una arreglo de nodos con los vecinos de NodeSource*/
Node* network_get_neighbours (Network net, Node NodeSource);

/** Devuelve la capacidad de la aristra entre dos nodos */
long int network_get_capacity (Network net, Node Node_s, Node Node_t);

/** Destruye un Network */
Network network_destroy (Network Net);

#endif /* NETWORK_H */
